package com.pxmeta.party.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.pxmeta.user.entity.vo.UserVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 语聊派对表
 * </p>
 *
 * @author wcl
 * @since 2022-06-25
 */
@TableName("kt_party")
@ApiModel(value = "Party对象", description = "语聊派对表")
@Data
public class Party implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    @TableId(type = IdType.NONE)
    private String id;

    @ApiModelProperty("名称")
    private String title;

    @ApiModelProperty("创建人id")
    private Long userId;

    @ApiModelProperty("圈子id")
    private Long circleId;

    @ApiModelProperty("类型:1扩列闲聊，2练歌听歌，3公会房，4大哥房，6派单厅")
    private Integer type;

    @ApiModelProperty(value = "编号")
    private String number;

    @ApiModelProperty(value = "热度")
    private Integer hot;

    @ApiModelProperty("封面图")
    private String imgUrl;

    @ApiModelProperty("背景图")
    private String bgUrl;

    @ApiModelProperty("公告")
    private String notice;

    @ApiModelProperty("是否是公会房")
    private Boolean isAssociationRoom;

    @ApiModelProperty(value = "公会id")
    private Long associationId;

    @ApiModelProperty(value = "当前用户数")
    private Integer onlineCount;

    @ApiModelProperty(value = "是否隐藏")
    private Boolean isHidden;

    @ApiModelProperty("是否删除")
    @TableLogic(value = "0",delval = "1")
    private Integer isDel;

    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @ApiModelProperty("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


    @ApiModelProperty(value = "总流水")
    @TableField(exist = false)
    private Double totalBillNumber;

    @ApiModelProperty(value = "周流水")
    @TableField(exist = false)
    private Double weekBillNumber;

    @ApiModelProperty(value = "昨日流水")
    @TableField(exist = false)
    private Double yesterdayBillNumber;

    @ApiModelProperty(value = "日流水")
    @TableField(exist = false)
    private Double todayBillNumber;

    @ApiModelProperty(value = "房间密码")
    private String password;


    @ApiModelProperty(value = "成员列表")
    @TableField(exist = false)
    private List<UserVO> users;


    @ApiModelProperty(value = "声网token")
    @TableField(exist = false)
    private Map<String,Object> tokenMap;

    @ApiModelProperty(value = "房主用户名")
    @TableField(exist = false)
    private String creatorUsername;
}
